package dao;

import com.google.inject.ImplementedBy;
import models.UnLoadPlace_T_Entity;
import models.UnloadPlace_F_Entity;
import models.UserRoute_C_Entity;
import models.XMLString_Entity;
import services.UnloadPlace_Repository_JPA;

import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.CompletionStage;

/**
 * This interface provides a non-blocking API for possibly blocking operations.
 */
@ImplementedBy(UnloadPlace_Repository_JPA.class)
public interface UnloadPlace_Repository {
    CompletionStage<List<UnloadPlace_F_Entity>> GetUnloadPlaceByDeptID(String deptID);
    CompletionStage<List<UserRoute_C_Entity>> ConfirmStatus();
    CompletionStage<List<UnloadPlace_F_Entity>> UserConfirmUnloadPlace(String ApplyID, String UnloadPlace);
    CompletionStage<XMLString_Entity> getGPSUnloadPlace(String PhoneNumber, Double Lat, Double Lng);
//    CompletionStage<XMLString_Entity> saveCoordinates(String PhoneNumber, String UnloadPlaceName, Double Lat, Double Lng, BigDecimal mileage);
    CompletionStage<List<UnLoadPlace_T_Entity>> saveCoordinates(String PhoneNumber, String UnloadPlaceName, Double Lat, Double Lng, BigDecimal mileage);
    CompletionStage<List<UnLoadPlace_T_Entity>> getUnloadPlaceByApplyId(Integer applyId);
    CompletionStage<List<UnLoadPlace_T_Entity>> getUnloadPlaceByPoundNo(String poundNo);
}

